table of contents
LINK(2) | Podręcznik programisty Linuksa | LINK(2) |
NAZWA¶
link - utworzenie nowej nazwy dla pliku
SKŁADNIA¶
#include <unistd.h>
int link(const char *oldpath, const char *newpath);
OPIS¶
link tworzy nowe dowiązanie (nazywane też dowiązaniem twardym) do istniejącego pliku.
Jeśli plik newpath już istnieje, to nie będzie nadpisany.
Ta nowa nazwa może być używana dokłądnie tak samo jak stara w dowolnychoperacjach; obie nazwy odnoszą się do tego samego pliku (i w związku z tym mają te same prawa i właścicielstwo). Nie można też powiedzieć, która nazwa jest `oryginalna'.
WARTOŚĆ ZWRACANA¶
Po pomyślnym zakończeniu zwracane jest zero. Po błędzie zwracane jest -1 i odpowiednio ustawiane errno.
BŁĘDY¶
- EXDEV
- oldpath i newpath nie leżą na tym samym systemie plików.
- EPERM
- system plików zawierający oldpath i newpath nie obsługuje tworzenia twardych dowiązań.
- EFAULT
- oldpath lub newpath wskazuje poza dostępną dla użyrkownika przestrzeń adresową.
- EACCES
- Zapis do katalogu zawierającego newpath nie jest dozwolony dla efekywnego UID procesu, lub jeden z katalogów w oldpath lub newpath nie daje uprawnień przeszukiwania (wykonania).
- ENAMETOOLONG
- oldpath lub newpath było zbyt długie.
- ENOENT
- Składnik katalogu w oldpath lub newpath nie istnieje, lub jest wiszącym dowiązaniem symbolicznym.
- ENOTDIR
- Składnik oldpath lub newpath używany jako katalog nie jest w rzeczywistości katalogiem.
- ENOMEM
- Brak dostępnej pamięci jądra.
- EROFS
- Plik leży na systemie plików tylko dla odczytu.
- EEXIST
- newpath już istnieje.
- EMLINK
- Plik wskazywany przez oldpath ma już maksymalną ilość dowiązań.
- ELOOP
- Podczas rozwiązywania oldpath lub newpath napotkano zbyt wiele dowiązań symbolicznych.
- ENOSPC
- Na urządzeniu, zawierającym plik nie ma miejsca na nowy wpis w katalogu.
- EPERM
- oldpath jest katalogiem.
- EIO
- Wystąpił błąd we/wy.
UWAGI¶
Twarde dowiązania, tworzone z pomocą link, nie mogą wykraczać poza jeden system plików. W takich sytuacjach można użyć funkcji symlink.
ZGODNE Z¶
SVr4, SVID, POSIX, BSD 4.3, X/OPEN. SVr4 dokumentuje dodatkowe błędy ENOLINK i EMULTIHOP; POSIX.1 nie dokumentuje ELOOP. X/OPEN nie dokumentuje EFAULT, ENOMEM ani EIO.
USTERKI¶
Na systemach NFS, wartość zwracana może być nieprawidłowa w wypadku gdy serwer NFS dokonuje tworzenia dowiązania i umiera przed zakomunikowaniem tego faktu. Można użyć stat(2) aby dowiedzieć się czy dowiązanie zostało utworzone.
ZOBACZ TAKŻE¶
1997-12-10 | Linux 2.0.30 |